package com.train.mgr.modules.biz.service;

import com.train.common.model.PageResult;
import com.train.mgr.modules.biz.dto.request.CourseQueryReqDTO;
import com.train.mgr.modules.biz.dto.request.CourseReqDTO;
import com.train.mgr.modules.biz.dto.response.CourseRespDetailDTO;
import com.train.mgr.modules.biz.dto.response.CourseRespListDTO;
import com.train.mgr.modules.biz.dto.response.TraineeStuRespDTO;
import com.train.mgr.modules.biz.entity.Course;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * <p>
 * 课程表 服务类
 * </p>
 *
 * @author cxg
 * @date 2025-09-30
 */
public interface ICourseService extends IService<Course> {

    CourseRespDetailDTO findDetailById(Long id);

    Long save(CourseReqDTO dto);

    boolean update(CourseReqDTO dto);

    boolean deleteById(Long id);

    boolean publish(Long id);

    boolean unPublish(Long id);

    boolean selfGroup(Long id, Long status);

    boolean checkReview(Long id, Long isReview);

    PageResult<CourseRespListDTO> pageList(CourseQueryReqDTO params);

    Course selectCourceByCourceCode(String courceCode ,Long customerId);

    TraineeStuRespDTO getStuCourseCount();

    List<Course> getCourseList();
}
